//
//  JPBaseCell.h
//  JPProjectConfigureDemo
//
//  Created by Carpenter on 2018/2/6.
//  Copyright © 2018年 carpenter. All rights reserved.
//

#import <UIKit/UIKit.h>

@interface JPBaseCell : UITableViewCell


/**
 承载单元格的表格
 */
@property (nonatomic ,weak ,readonly) UITableView * tableView;




/**
 * @brief 快速创建单元格
 *
 * @discussion 默认单元格样式为‘UITableViewCellStyleDefault’，标识符为‘NSStringFromClass([self class]) + Identifier’
 *
 * @param tableView 加载中单元格的表格
 *
 * @return 单元格
 */
+(instancetype)jp_cellForTableView:(UITableView*)tableView;

/**
 * @brief 快速创建单元格
 *
 * @discussion 默认单元格样式为‘UITableViewCellStyleDefault’
 *
 * @param tableView 加载中单元格的表格
 *
 * @param identifier 单元格标识符
 *
 * @return 单元格
 */
+(instancetype)jp_cellForTableView:(UITableView*)tableView Identifier:(NSString*)identifier;


/**
 * @brief 快速创建单元格
 *
 * @discussion 默认标识符为‘NSStringFromClass([self class]) + Identifier’
 *
 * @param tableView 加载中单元格的表格
 *
 * @param style 单元格类型
 *
 * @return 单元格
 */
+(instancetype)jp_cellForTableView:(UITableView*)tableView style:(UITableViewCellStyle)style;


/**
 * @brief 快速创建单元格
 *
 * @param tableView 加载中单元格的表格
 *
 * @param identifier 单元格标识符
 *
 * @param style 单元格类型
 *
 * @return 单元格
 */
+(instancetype)jp_cellForTableView:(UITableView*)tableView Identifier:(NSString*)identifier style:(UITableViewCellStyle)style;


/**
 * @brief 配置当前视图必要的信息
 *
 * @discussion 1. 调用时机：在‘initWithStyle:reuseIdentifier:’内部
 *
 * @discussion 2. 调用顺序：jp_configure > jp_setupSubviews
 *
 */
-(void)jp_configure NS_REQUIRES_SUPER;

/**
 * @brief 布局视图
 *
 * @discussion 1. 调用时机：在‘initWithStyle:reuseIdentifier:’内部
 *
 * @discussion 2. 调用顺序：jp_configure > jp_setupSubviews
 *
 */
-(void)jp_setupSubviews NS_REQUIRES_SUPER;


@end
